<?php

use Yaf\Controller_Abstract;

/**
 * @name IndexController
 * @author root
 * @desc 默认控制器
 * @see http://www.php.net/manual/en/class.yaf-controller-abstract.php
 */
class IndexController extends Controller_Abstract
{
    /**
     * 默认初始化方法，如果不需要，可以删除掉这个方法
     * 如果这个方法被定义，那么在Controller被构造以后，Yaf会调用这个方法
     */
    public function init()
    {
        $this->getView()->assign("header", "Yaf Example");
    }

    /**
     * 默认动作
     * Yaf支持直接把\Yaf\Request_Abstract::getParam()得到的同名参数作为Action的形参
     * 对于如下的例子, 当访问http://yourhost/index/index/index/name/root 的时候, 你就会发现不同
     * @param string $name
     * @return bool
     */
    public function indexAction($name = "David")
    {
        $file = str_replace(APPLICATION_PATH, '', __FILE__);

        //1. fetch query
        //$get = $this->getRequest()->getQuery("get", "default value");
        $name = $name . ' . （Page：' . $file.'）'.PHP_EOL;

        //2. fetch model
        $model = new SampleModel();

        //3. assign
        $this->getView()->assign("content", $model->selectSample() .' Yaf Version:' . \Yaf\VERSION);
        $this->getView()->assign("name", $name);

        //4. render by Yaf, 如果这里返回FALSE, Yaf将不会调用自动视图引擎Render模板
        return true;
    }
}
